package io.gitee.hchaojie.day08.thread;

public class Singleton {
    // private static Singleton instance = new Singleton();
    private static Singleton instance = null;

//    public static Singleton getInstance() {
//        return instance;
//    }

    public Singleton() {
        System.out.println("实例被创建");
    }

    // instance实例在第一次调用getInstance的时候才创建
    // 如果没有同步，instance会被创建多次
    // 第一次创建实例的时候，需要同步
    public static Singleton getInstance() {
        // 双重检查
        if (instance == null) {
            synchronized (Singleton.class) {    // 使用类的字节码对象作为锁
                if (instance == null) {             // 一
                    instance = new Singleton();     // 延迟初始化
                }
            }
        }

        return instance;
    }
}
